package bbalgae;

import bbalgae.J28_Interface.Printable;





public class J28_PrinterInterface {

	// 인터페이스를 사용하지 않은 경우
	// 프린터 제조사를 예를 들겠다.

	public static void main(String[] args) {

		HPPrinter h = new HPPrinter();
		h.speedPrint();
		CanonPrinter c = new CanonPrinter();
		c.hyperPrint();
		EpsonPrinter e = new EpsonPrinter();
		e.nanoPrint();
		
		HPPrinterDriver a = new HPPrinterDriver();
		a.print();
	
		CanonPrintDriver k = new CanonPrintDriver();
		k.print();
		
		EpsonPrintDriver d = new EpsonPrintDriver();
		d.print();
		
		///중요 다형성!!!!!
		
		Printable p = new HPPrinterDriver();
		p.print();
		p=new CanonPrintDriver();
		p.print();
		p=new EpsonPrintDriver();
		p.print();
	
		
		
	}
	
	
		
}


class HPPrinter {
	public void speedPrint() {
		System.out.println("빠른 출력속도!! - HP");
	}
}

class CanonPrinter {
	public void hyperPrint() {
		System.out.println("절대 속도에 도전 - Canon");
	}
}

class EpsonPrinter {
	public void nanoPrint() {
		System.out.println("눈깜빡할 속도 - Epson");
	}
}




class HPPrinterDriver implements Printable {

	@Override
	public void print() {
		System.out.println("빠른 출력속도!! - HP");
	}

}

class CanonPrintDriver implements Printable {

	@Override
	public void print() {
		System.out.println("절대 속도에 도전 - Canon");

	}

}

class EpsonPrintDriver implements Printable {
 
	@Override
	public void print() {
		System.out.println("눈깜빡할 속도 - Epson");
	}

}